package com.zpark.service;

import com.zpark.dao.IUserDao;
import com.zpark.exception.PasswordErrorException;
import com.zpark.exception.UserNotFoundException;
import com.zpark.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @PackageName: com.zpark.service
 * @ClassName: UserServiceImpl
 * @Description:
 * @author: RZS
 * @date: 2023/4/13  14:37
 */
@Service
public class UserServiceImpl implements IUserService{

    @Autowired
    private IUserDao userDao;

    @Override
    public User login(User user) {
        /**
         * 登录业务逻辑
         *      1、根据用户名查找数据
         *      2、判断查询是否有结果
         *      3、有结果，判断密码是否一致，如果一致则登录成功，返回User，否则登录失败
         *      4、没有结果，直接登录失败
         */
        // 根据用户名查找数据
        User user1 = userDao.selectByUsername(user.getUsername());
        // 判断查询是否有结果
        if (user1 == null) {
            // 抛出异常（自定义异常）
            throw new UserNotFoundException("用户不存在，登录失败");
        }
        // 有结果，判断密码是否一致，如果一致则登录成功，返回User，否则登录失败
        if (!user1.getPwd().equals(user.getPwd())) {
            // 密码不正确，抛出异常
            throw new PasswordErrorException("密码错误，登录失败");
        }

        // 将用户数据返回到controller层
        return user1;
    }
}
